﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace EasyTrader.Signal
{
    public class HighLowInfo
    {
        private double m_FirstHighY = 0.0;
        public double FirstHighY
        {
            get { return m_FirstHighY; }
            set { m_FirstHighY = value; }
        }
        private double m_FirstLowY = 0;
        public double FirstLowY
        {
            get { return m_FirstLowY; }
            set { m_FirstLowY = value; }
        }

        private double m_SecondHighY = 0.0;
        public double SecondHighY
        {
            get { return m_SecondHighY; }
            set { m_SecondHighY = value; }
        }

        private double m_SecondLowY = 0.0;
        public double SecondLowY
        {
            get { return m_SecondLowY; }
            set { m_SecondLowY = value; }
        }

        // 종가중에서 최소값
        private double m_CloseMin = 0.0;
        public double CloseMin
        {
            get { return m_CloseMin; }
            set { m_CloseMin = value; }
        }
        // 종가중에서 최고값
        private double m_CloseMax = 0.0;
        public double CloseMax
        {
            get { return m_CloseMax; }
            set { m_CloseMax = value; }
        }

        // 고점 중에 제일 큰값
        private double m_HighY = 0.0;
        public double HighY
        {
            get { return m_HighY; }
            set { m_HighY = value; }
        }
        // 저점 중에 제일 작은 값
        private double m_LowY = 0.0;
        public double LowY
        {
            get { return m_LowY; }
            set { m_LowY = value; }
        }
        private int m_StartX = 0;
        public int StartX
        {
            get { return m_StartX; }
            set { m_StartX = value; }
        }
        private int m_EndX = 0;
        public int EndX
        {
            get { return m_EndX; }
            set { m_EndX = value; }
        }
        public double MinMaxHeight()
        {
            return Math.Abs(m_CloseMax - m_CloseMin);
        }
        public double HighLowHeight()
        {
            return Math.Abs(m_HighY - m_LowY);
        }

        public int BuyHeight()
        {
            return Math.Abs(m_BuyHigh - m_BuyLow);
        }

        public int SellHeight()
        {
            return Math.Abs(m_SellHigh - m_SellLow);
        }

        private int m_BuyLow = 0;
        public int BuyLow
        {
            get { return m_BuyLow; }
            set { m_BuyLow = value; }
        }
        private int m_BuyHigh = 0;
        public int BuyHigh
        {
            get { return m_BuyHigh; }
            set { m_BuyHigh = value; }
        }
        private int m_SellLow = 0;
        public int SellLow
        {
            get { return m_SellLow; }
            set { m_SellLow = value; }
        }
        private int m_SellHigh = 0;
        public int SellHigh
        {
            get { return m_SellHigh; }
            set { m_SellHigh = value; }
        }
        private int m_BuyAveLow = 0;
        public int BuyAveLow
        {
            get { return m_BuyAveLow; }
            set { m_BuyAveLow = value; }
        }
        private int m_BuyAveHigh = 0;
        public int BuyAveHigh
        {
            get { return m_BuyAveHigh; }
            set { m_BuyAveHigh = value; }
        }
        private int m_SellAveLow = 0;
        public int SellAveLow
        {
            get { return m_SellAveLow; }
            set { m_SellAveLow = value; }
        }
        private int m_SellAveHigh = 0;
        public int SellAveHigh
        {
            get { return m_SellAveHigh; }
            set { m_SellAveHigh = value; }
        }

        private int m_LowX = 0;
        public int LowX
        {
            get { return m_LowX; }
            set { m_LowX = value; }
        }
        private int m_HighX = 0;
        public int HighX
        {
            get { return m_HighX; }
            set { m_HighX = value; }
        }

        private int m_CloseMaxX = 0;
        public int CloseMaxX
        {
            get { return m_CloseMaxX; }
            set { m_CloseMaxX = value; }
        }
        private int m_CloseMinX = 0;
        public int CloseMinX
        {
            get { return m_CloseMinX; }
            set { m_CloseMinX = value; }
        }
    }
}
